package com.ssy.lingxi.enhance.api.feign;

import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.enhance.api.model.dto.*;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import javax.validation.Valid;

/**
 * @menu 生产通知单 - 内部接口
 * @author fhj
 * @version 2.0.0
 * @date 2020/11/21
 */
@FeignClient(value = "enhance-service")
public interface ProduceNoticeOrderControllerFeign {

    @ApiOperation(value = "内部接口：提交物流单")
    @PostMapping(value = "/enhance/process/toBeAddLogistics/submit")
    Wrapper<Void> submit(@RequestBody @Valid AddLogisticsDTO dto);

    @ApiOperation(value = "内部接口：确认物流单")
    @PostMapping(value = "/enhance/process/toBeAddLogistics/confirmLogistics")
    Wrapper<Void> confirmLogistics(@RequestBody @Valid ConfirmLogisticsDTO dto);

    @ApiOperation(value = "内部接口：修改发货单")
    @PostMapping(value = "/enhance/process/toBeAddDelivery/updateDelivery")
    Wrapper<Void> updateDelivery(@RequestBody @Valid UpdateInvoiceDTO dto);

    @ApiOperation(value = "内部接口：批量审核发货单")
    @PostMapping(value = "/enhance/process/toBeAddDelivery/batchExamDelivery")
    Wrapper<Void> batchExamDelivery(@RequestBody @Valid BatchExamDTO dto);

    @ApiOperation(value = "内部接口：修改入库单")
    @PostMapping(value = "/enhance/supplier/toBeAddStorage/updateStorage")
    Wrapper<Void> updateStorage(@RequestBody @Valid UpdateStorageDTO dto);

    @ApiOperation(value = "内部接口：批量审核入库单")
    @PostMapping(value = "/enhance/supplier/toBeAddStorage/batchExamStorage")
    Wrapper<Void> batchExamStorage(@RequestBody @Valid BatchExamDTO dto);
}
